Some existing systems perform graphics commands received from various processes. Specifically, hardware including graphics processing units (GPUs) manages execution of the graphics commands. The graphics commands may vary in complexity between two-dimensional commands, three-dimensional commands, surface mapping commands, shading commands, texture rendering commands, and the like. Depending on the complexity of a graphics command, performance of the graphics command may utilize more or less of the GPU resources available to all the processes. Some of the processes, such as virtual machines (VMs), may be operated by different customers, tenants, or users on the same system. Disparity among the needs of the different users and among the different graphics commands often results in an unfair disparity of use of the GPU. In some instances, monopolization of the GPU resources occurs.
In some existing systems, a driver for the GPU resides in kernel space and considers all graphics commands as originating from a single user. In such systems, the GPU executes the graphics commands in a first-in, first-out manner. The GPU does not consider the size or complexity of each graphics command. Further, the GPU does not recognize any prioritization among the graphics commands.